home *** CD-ROM | disk | FTP | other *** search
/ CD-ROM Windows Selection / Windows Selection 1.iso / Programmer's Utilities / Freeman Installer / oprdr.h < prev    next >
Encoding:
C/C++ Source or Header  |  1997-04-10  |  6.7 KB  |  226 lines

  1. #define __OPRDR_H
  2.  
  3.  
  4. #ifndef __FSTRM_H
  5. #include "fstrm.h"
  6. #endif
  7.  
  8.  
  9. typedef unsigned int UINT;
  10.  
  11. struct pmgrupinfo;
  12. struct pmiteminfo;
  13.  
  14. class abspath;
  15.  
  16. class opt                                                           /* op type */
  17. {
  18.    public:
  19.  
  20.    enum
  21.    {
  22.       /* op type in v1.5 */
  23.       mkdir,         deldir,       renfile,      delfile,     copyfile,
  24.       setfileattr,   createfile,   addinientry,  delinientry, setinivalue,
  25.       addgrup,       additem,      delgrup,      delitem,     addregkey,
  26.       addregfield,   setregfield,  delregfield,  delregkey,
  27.  
  28.       /* the following op types modified in v2.1:               */
  29.       /*    copyfile    ==> instcreate                          */
  30.       /*    addinientry ==> insinientry support seqno           */
  31.       /*    delinientry ==> <no change> support seqno           */
  32.       /*    setinivalue ==> <no change> support seqno           */
  33.       /*    setregfield ==> <no change> support non-REG_SZ type */
  34.       /*    delregfield ==> <no change> support non-REG_SZ type */
  35.       instcreate  = copyfile,
  36.       insinientry = addinientry,
  37.  
  38.       /* op type introduced in v2.1 */
  39.       instappend = delregkey+1,                         /* make it consecutive */
  40.       addinisect,
  41.       delinisect,
  42.       instfont
  43.    };
  44. };
  45.  
  46. class oprdrabs
  47. {
  48.    public:
  49.  
  50.    virtual void mkdir(abspath &dir)                                                 = 0;
  51.    virtual void deldir(abspath &dir)                                                = 0;
  52.    virtual void delfile(abspath &path)                                              = 0;
  53.    virtual void renfile(abspath &oldpath, abspath &newpath)                         = 0;
  54.    virtual void createfile(abspath &path)                                           = 0;
  55.    virtual void setfileattr(abspath &path, DWORD oldflags, DWORD newflags)          = 0;
  56.    virtual void instcreatefile(abspath &srcpath, abspath &dstpath, int isuninstall) = 0;
  57.    virtual void instappendfile(abspath &srcpath, abspath &dstpath, int isuninstall, long off) = 0;
  58.  
  59.    virtual void addinisect(abspath &file, char sect[])                              = 0;
  60.    virtual void delinisect(abspath &file, char sect[])                              = 0;
  61.    virtual void insinientry(abspath &file, char sect[], char entry[], int seqno)    = 0;
  62.    virtual void delinientry(abspath &file, char sect[], char entry[], char oldv[], int seqno) = 0;
  63.    virtual void setinivalue(abspath &file, char sect[], char entry[], char oldv[], int seqno) = 0;
  64.  
  65.    virtual void addgrup(char grup[])                   = 0;
  66.    virtual void additem(char grup[], char item[])      = 0;
  67.    virtual void delgrup(char grup[])                   = 0;
  68.    virtual void delitem(char grup[], pmiteminfo &pmii) = 0;
  69.  
  70.    virtual void addregkey(int kroot, char kpath[])                                                       = 0;
  71.    virtual void delregkey(int kroot, char kpath[])                                                       = 0;
  72.    virtual void addregfield(int kroot, char kpath[], char field[])                                       = 0;
  73.    virtual void setregfield(int kroot, char kpath[], char field[], DWORD oldt, DWORD oldz, BYTE oldv[])  = 0;
  74.    virtual void delregfield(int kroot, char kpath[], char field[], DWORD oldt, DWORD oldz, BYTE oldv[])  = 0;
  75.  
  76.    virtual void installfont(abspath &file, int isuninstall) = 0;
  77. };
  78.  
  79. class oprdrnul:public oprdrabs
  80. {
  81.    public:
  82.  
  83.    void mkdir(abspath &dir)
  84.    {
  85.  
  86.    }
  87.    void deldir(abspath &dir)
  88.    {
  89.  
  90.    }
  91.    void delfile(abspath &path)
  92.    {
  93.  
  94.    }
  95.    void renfile(abspath &oldpath, abspath &newpath)
  96.    {
  97.  
  98.    }
  99.    void createfile(abspath &path)
  100.    {
  101.  
  102.    }
  103.    void setfileattr(abspath &path, DWORD oldflags, DWORD newflags)
  104.    {
  105.  
  106.    }
  107.    void instcreatefile(abspath &srcpath, abspath &dstpath, int isuninstall)
  108.    {
  109.  
  110.    }
  111.    void instappendfile(abspath &srcpath, abspath &dstpath, int isuninstall, long off)
  112.    {
  113.  
  114.    }
  115.    void addinisect(abspath &file, char sect[])
  116.    {
  117.  
  118.    }
  119.    void delinisect(abspath &file, char sect[])
  120.    {
  121.  
  122.    }
  123.    void insinientry(abspath &file, char sect[], char entry[], int seqno)
  124.    {
  125.  
  126.    }
  127.    void delinientry(abspath &file, char sect[], char entry[], char oldv[], int seqno)
  128.    {
  129.  
  130.    }
  131.    void setinivalue(abspath &file, char sect[], char entry[], char oldv[], int seqno)
  132.    {
  133.  
  134.    }
  135.    void addgrup(char grup[])
  136.    {
  137.  
  138.    } 
  139.    void additem(char grup[], char item[])
  140.    {
  141.  
  142.    } 
  143.    void delgrup(char grup[])
  144.    {
  145.  
  146.    } 
  147.    void delitem(char grup[], pmiteminfo &pmii)
  148.    {
  149.  
  150.    }
  151.    void addregkey(int kroot, char kpath[])
  152.    {
  153.  
  154.    }
  155.    void delregkey(int kroot, char kpath[])
  156.    {
  157.  
  158.    }
  159.    void addregfield(int kroot, char kpath[], char field[])
  160.    {
  161.  
  162.    }
  163.    void setregfield(int kroot, char kpath[], char field[], DWORD oldt, DWORD oldz, BYTE oldv[])
  164.    {
  165.  
  166.    }
  167.    void delregfield(int kroot, char kpath[], char field[], DWORD oldt, DWORD oldz, BYTE oldv[])
  168.    {
  169.  
  170.    }
  171.    void installfont(abspath &file, int isuninstall)
  172.    {
  173.  
  174.    }
  175. };
  176.  
  177. /* a binary file storing install log (not really an INI file) */
  178. class oprdrini:public oprdrabs
  179. {
  180.    fstrm f;
  181.  
  182.    public:
  183.  
  184.    oprdrini()                                          /* must call init later */
  185.    {
  186.  
  187.    }
  188.    oprdrini(int *r, char appname[]);
  189.  
  190.    void free()                                               /* close the file */
  191.    {
  192.       f.free();
  193.    }
  194.  
  195.    int init(char appname[]);
  196.  
  197.    void mkdir(abspath &dir);
  198.    void deldir(abspath &dir);
  199.    void delfile(abspath &path);
  200.    void renfile(abspath &oldpath, abspath &newpath);
  201.    void createfile(abspath &path);
  202.    void setfileattr(abspath &path, DWORD oldflags, DWORD newflags);
  203.    void instcreatefile(abspath &srcpath, abspath &dstpath, int isuninstall);
  204.    void instappendfile(abspath &srcpath, abspath &dstpath, int isuninstall, long off);
  205.  
  206.    void addinisect(abspath &file, char sect[]);
  207.    void delinisect(abspath &file, char sect[]);
  208.    void insinientry(abspath &file, char sect[], char entry[], int seqno);
  209.    void delinientry(abspath &file, char sect[], char entry[], char oldv[], int seqno);
  210.    void setinivalue(abspath &file, char sect[], char entry[], char oldv[], int seqno);
  211.  
  212.    void addgrup(char grup[]);
  213.    void additem(char grup[], char item[]);
  214.    void delgrup(char grup[]);
  215.    void delitem(char grup[], pmiteminfo &pmii);
  216.  
  217.    void addregkey(int kroot, char kpath[]);
  218.    void delregkey(int kroot, char kpath[]);
  219.    void addregfield(int kroot, char kpath[], char field[]);
  220.    void delregfield(int kroot, char kpath[], char field[], DWORD oldt, DWORD oldz, BYTE oldv[]);
  221.    void setregfield(int kroot, char kpath[], char field[], DWORD oldt, DWORD oldz, BYTE oldv[]);
  222.  
  223.    void installfont(abspath &file, int isuninstall);
  224. };
  225.  
  226.